<?php 
	/**
	 * Klass FILE UPLOAD VIEW - 
	 * Innehåller det som ska skrivas ut och visas för användaren. Väntar på konversationer ifrån controllern.
	*/
	class FileUploadView
	{		
		const EMPTY_MESSAGE = 0;
		const WRONG_EXTENSION = 1;
		const SUCCESS_FILEUPLOAD = 2;
		const NO_FILE_SELECTED = 3;
		const FILENAME_EXIST = 4;

		private $myFile = "myFile";
		private $upload = "upload";
		
		//----- FUNKTION: MESSAGE HOLDER ------------------------------------------------------------------------------------------------------- 
		/**
		 * Funktion som innehåller alla fel/rätt meddelanden till FILE UPLOAD.
		 * @param int $message Innehåller en siffra som representerar meddelande.
		 * @return string $message Retunerar meddelanden.
		 */
		public function MessageHolder($message) {
			switch ($message) {
				case self::EMPTY_MESSAGE:
					$message = "";					
					break;
					
				case self::WRONG_EXTENSION:
					$message = "<div class='alert alert-error'>Fel filtyp, godtar endast pdf!</div>";					
					break;
				
				case self::SUCCESS_FILEUPLOAD:
					$message = "<div class='alert alert-success'>Uppladdningen lyckades!</div>";					
					break;

				case self::NO_FILE_SELECTED:
					$message = "<div class='message alert alert-error'>Ingen fil har valts!</div>";					
					break;

				case self::FILENAME_EXIST:
					$message = "<div class='message alert alert-error'>Filnamnet finns redan!</div>";					
					break;

				default:					
					break;
			} return $message;
			
		}
		

		//----- FUNKTION: CREATE FILE UPLOAD VIEW ---------------------------------------------------------------------------------------------------------	
		/**
		* Skapar "formuläret" så att användaren kan se knappar för att välja att ladda up en fil.
		* @param int $message Innehåller information om vilket meddelande som ska skrivas ut.
		* @param string $existingCustomersDropDown Innehåller HTML-koden för dropdown menyn.
		* @return string Retunerar formuläret
		*/
		public function CreateFileUploadView($message, $existingCustomersDropDown) {			 
			
			 return "
		 			$message 
		 			<form id='FileUploadForm' method='post' enctype='multipart/form-data' action='uploadInvoice.php'>		 			
			 			<div id='fileUpload'>
	 						<h3>Välj kund:</h3> 				
	 						<div id='customerdropdown'>
	 							<lable>Kund:</lable>
	 							$existingCustomersDropDown
 							</div><br/><br/>
			 				
			 				<h3>Välj vilken faktura som ska laddas upp:</h3> 
			 				<div id='file'>
				 				<input name='$this->myFile' type='file'>
				 			</div>
				 			
				 			<input id='upload' name='$this->upload' type='submit' value='Ladda upp' class='btn btn-warning '>

			 			</div>		 					 		
	 				</form>			
			";
		}


		//----- FUNKTION: GET FILE ------------------------------------------------------------------------------------------------------- 
		/**
		 * Funktionen hämtar ut filen som användaren har valt.
		 */
		public function GetFile()
		{			
			return $_FILES[$this->myFile];
		}


		//----- FUNKTION: TRIED TO UPLOAD ------------------------------------------------------------------------------------------------------- 
		/**
		 * Funktion som kontrollerar om användaren har klickat på UPLOAD-knappen.
		 */
		public function TriedToUpload()
		{
			return isset($_POST[$this->upload]);
		}


		//----- FUNKTION: LIST ALL FILES ------------------------------------------------------------------------------------------------------- 
		/**
		 * Funktion som skriver ut alla uppladded PDF-dokument som egna länkar. Loopar igenom FILES.
		 * @param array $files En array med alla uppladdade filer.
		 * @param string $path Sökvägen till pdf dokumenten.
		 * @return $returnstring Retunerar a-taggar med sökvägen till alla filer som loppats igenom plus namnet för varje fil.
		 */
		public function ListAllFiles($files, $path)
		{
			$returnstring = "";

			foreach ($files as $filename) {
				$pathFilename = $path . $filename;
				$returnstring .= "<a href='$pathFilename'>$filename</a><br/>";
			}
			return $returnstring;
		}
	}
 ?>